Under the environment of recent years in which data streams flow on a network, in order to perform real-time processing on stream data forming data streams, there is a demand for reduction in time of data transmission between various entities that transmit/receive the stream data. Example of the entities include various communication equipment pieces (terminal apparatuses and relay apparatuses) connected to the network. Also, data streams flow among electronic circuit chips that perform processing on various stream data, such as processors, LSIs (large-scale integrated circuits) and FPGAs (field-programmable gate arrays) incorporated in communication equipment pieces. An electronic circuit chip is one of the entities, and communications between the entities include not only communications between communication equipment pieces, but also communications between electronic circuit chips inside a communication equipment piece (what is called internal communications).
In recent years, there is a trend toward an increase in stream data amount. As a method for efficiently transmitting a certain amount of stream data from the transmission side to the reception side, increasing a frequency (expanding a transmission band) of a transmission path connecting entities or connecting entities via a plurality of transmission paths to transmit stream data in parallel may be contemplated. However, these methods will eventually reach physical and frequency limits.
Therefore, a technique in which stream data is compressed in a transmission-side apparatus has been proposed. In other words, a data transmission efficiency is improved by reduction in data transmission time resulting from reduction in transmission data amount. For example, data compressors including a conversion unit that if two or more consecutive symbols are registered, converts the two or more symbols into one symbol, and an output unit that if the two or more symbols are converted into one symbol by the conversion unit, outputs the one symbol, and if not, outputs the two or more symbols is proposed (for example, Patent document 1). Accordingly, compression and decompression processing can be performed with a processing delay within a certain period of time.
Also, techniques in which input data are subjected to counting processing in blocks to count the number of times of generation for each of data to be coded, and if there are data to be coded, the number of times of generation of each of which is 0, the numbers of times of generation are evenly incremented by an integer of no less than 1, and based on an adaptive Huffman coding table created based on the number of times of generation in a certain block, variable-length coding is performed for a next block have also been proposed (for example, Patent document 2).